﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Text.RegularExpressions;


namespace UricaoWeb.LogicaDeNegocios.Restaurantes
{
    public class ValidarDatosRestaurante
    {
        /* 
         * Falta mascara para telefono. 
         * 
         * Falta cambiar en BD el tipo de dato de telefono de INT a string hay que cambiarla
         * 
         */
        #region Constantes
            //Ojo, no estan en la BD. Sería muy bueno que estuvieran en ALGÚN LADO!
                public static int CAPACIDAD_MINIMA_ACEPTABLE = 10;
                public static int CAPACIDAD_MAXIMA_ACEPTABLE = 1000;
            
            //Mascara para aceptar numero: 123-456-7890 o (123)-456-7890
            //OJO con el @, hace que el C# no parsee \<valor>. asi la mascara es aceptada; sino, no.
                public static String MASCARA_TELEFONO_ACEPTABLE = @"^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$";

        #endregion

        //Metodos para validar. Se trato de ser lo mas general posible.

            #region Metodos
            public static bool noEsCampoVacio(string campo)
            {
                if (campo == null || campo.Length == 0)
                    return false;
                else 
                    return true;

            }
            public static bool esTelefono(string campo)
            {   
                try 
                {
                    //Si el telefono tiene un formato aceptable
                    if (Regex.IsMatch(campo, MASCARA_TELEFONO_ACEPTABLE))
                        return true;
                    //Si no
                    else
                        return false;

                    //Falta validar la mascara

                    return true;
                }
                catch (Exception e)
                {
                    return false;
                }
            }

            public static bool esCapacidadRestauranteAceptable(string campo)
            {
                Int64 intCampo;

                try
                {
                    intCampo = Convert.ToInt64(campo);
                    if ((intCampo > CAPACIDAD_MINIMA_ACEPTABLE) && (intCampo <= CAPACIDAD_MAXIMA_ACEPTABLE))
                        return true;
                    else
                        return false;
                }
                catch (Exception e)
                {
                    //Error o convirtiendo o es menor que 0 
                    return false;
                }

            }

            public static bool esNumero(string verificarNumero)
                 {   
                            Int64 intCampo;
                            try 
                            {
                                intCampo = Convert.ToInt64(verificarNumero);
                                return true;
                            }
                            catch (Exception e)
                            {
                                //No es numero. El parseo de ToInt64 fallo
                                return false;
                            }
                 }

        #endregion






    }
}